iT邦幫忙

0

C# Get.Type() 回傳NULL問題

c#
  • 分享至 

  • xImage
  •  

我想去抓取Class的function 然後在執行該function
ClassName 跟 FunctionName 都有正常傳入值
目前 Type type = Type.GetType(ClassName); <= type = null
請問有哪個部分有問題 或有甚麼方法可以抓到該class內的function
class 跟 function NAME 都是傳入的

string ClassName = "TestQuartz";
string FunctionName = "Test1";

public class JobExecute : IJob
{
    public async Task Execute(IJobExecutionContext context)
    {
        var dataMap = context.JobDetail.JobDataMap;
        string ClassName = dataMap["ClassName"].ToString();
        string FunctionName = dataMap["FunctionName"].ToString();
        Type type = Type.GetType(ClassName);
        MethodInfo method = type.GetMethod(FunctionName);
        object obj = Activator.CreateInstance(type);

        await Task.Run(() =>
        {
            method.Invoke(obj, null);
        });
    }
}
public class TestQuartz
{
    public void Test1()
    {
        Console.WriteLine("Hello Quartz: Test1");
    }

    public void Test2()
    {
        Console.WriteLine("Hello Quartz: Test2");
    }
}

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

1
念戀
iT邦新手 4 級 ‧ 2024-01-26 12:20:30
public class TestQuartz
{
    public void Test1()
    {
        Console.WriteLine("Hello Quartz: Test1");
    }

    public void Test2()
    {
        Console.WriteLine("Hello Quartz: Test2");
    }
}

//這個class要有獨立的命名空間
string ClassName = dataMap["ClassName"].ToString();//需要包含 命名空間 + ClassName 
Type type = Type.GetType(ClassName); //此時不會null

EX:

  //Program.cs
  
  // 類型的名稱
  string className = "ConsoleApp5.TestQuartz";
  string FunctionName = "Test1";
  // 使用Type.GetType方法獲取類型
  Type type = Type.GetType(className);
//------------------------------------------//
  //TestQuartz.cs
  namespace ConsoleApp5
{
    public class TestQuartz
    {
        public void Test1()
        {
            Console.WriteLine("Hello Quartz: Test1");
        }

        public void Test2()
        {
            Console.WriteLine("Hello Quartz: Test2");
        }
    }
}
柯柯 iT邦新手 2 級 ‧ 2024-01-29 13:50:59 檢舉

謝謝 例外我好像發到技術文章 而不問答 沒辦法給最佳解答 /images/emoticon/emoticon20.gif

我要留言

立即登入留言